/**
 * 
 */
package cn.ad.server.web.spring.service.biz;

/**
 * 广告监测相关业务处理逻辑
 * @author Wu Chengjun
 */
public interface TrackingService {
	
	/**
	 * 创建点击请求参数
	 * @param version 地址接口版本号 
	 * @param channelId 接入渠道标识 不能为NULL
	 * @param platformId 平台标识 在自由平台下可以为Null 
	 * @param adspaceId 广告位标识， 可以为NULL
	 * @param strategyId 策略标识， 不可为null
	 * @param creativeId 创意标识， 不可为NULL
	 * @param materialId 素材标识, 不可为null
	 * @param guid 广告跟踪标识， 不可为Null
	 * @param targetUrl 跳转目标地址
	 * @return
	 */
	String buildClickQueryString(String version, int channelId, int platformId, long adspaceId, long strategyId, long creativeId, long materialId, String guid, String targetUrl, int os);
	
	/**
	 * 创建点击请求参数
	 * @param version 地址接口版本号 
	 * @param channelId 接入渠道标识 不能为NULL
	 * @param platformId 平台标识 在自由平台下可以为Null 
	 * @param adspaceId 广告位标识， 可以为NULL
	 * @param strategyId 策略标识， 不可为null
	 * @param creativeId 创意标识， 不可为NULL
	 * @param materialId 素材标识, 不可为null
	 * @param guid 广告跟踪标识， 不可为Null
	 * @param extend 扩展
	 * @return
	 */
	String buildClickQueryString2(String version, int channelId, int platformId, long adspaceId, long strategyId, long creativeId, long materialId, String guid, String targetUrl, String extend, int os);
	
	/**
	 * 创建展示请求参数
	 * @param version 地址接口版本号 
	 * @param channelId 接入渠道标识 不能为NULL
	 * @param platformId 平台标识 在自由平台下可以为Null 
	 * @param adspaceId 广告位标识， 可以为NULL
	 * @param strategyId 策略标识， 不可为null
	 * @param creativeId 创意标识， 不可为NULL
	 * @param materialId 素材标识, 不可为null
	 * @param guid 广告跟踪标识， 不可为Null
	 * @return
	 */
	String buildImpressionQueryString(String version, int channelId, int platformId, long adspaceId, long strategyId, long creativeId, long materialId, String guid, int os);
	
	/**
	 * 创建广告展示地址
	 * @param version 地址接口版本号 
	 * @param channelId 接入渠道标识 不能为NULL
	 * @param platformId 平台标识 在自由平台下可以为Null 
	 * @param adspaceId 广告位标识， 可以为NULL
	 * @param strategyId 策略标识， 不可为null
	 * @param creativeId 创意标识， 不可为NULL
	 * @param materialId 素材标识, 不可为null
	 * @param guid 广告跟踪标识， 不可为Null
	 * @return
	 */
	String buildImpressionUrl(String version, int channelId, int platformId, long adspaceId, long strategyId, long creativeId, long materialId, String guid, int os);

	/**
	 * 创建广告点击地址
	 *@param version 地址接口版本号 
	 * @param channelId 接入渠道标识 不能为NULL
	 * @param platformId 平台标识 在自由平台下可以为Null 
	 * @param adspaceId 广告位标识， 可以为NULL
	 * @param strategyId 策略标识， 不可为null
	 * @param creativeId 创意标识， 不可为NULL
	 * @param materialId 素材标识, 不可为null
	 * @param guid 广告跟踪标识， 不可为Null
	 * @param targetUrl 跳转目标地址
	 * @return
	 */
	String buildClickUrl(String version, int channelId, int platformId, long adspaceId, long strategyId, long creativeId, long materialId, String guid, String targetUrl, int os);
	
	/**
	 * 创建广告点击地址
	 *@param version 地址接口版本号 
	 * @param channelId 接入渠道标识 不能为NULL
	 * @param platformId 平台标识 在自由平台下可以为Null 
	 * @param adspaceId 广告位标识， 可以为NULL
	 * @param strategyId 策略标识， 不可为null
	 * @param creativeId 创意标识， 不可为NULL
	 * @param materialId 素材标识, 不可为null
	 * @param guid 广告跟踪标识， 不可为Null
	 * @param targetUrl 跳转目标地址
	 * @param extend 扩展
	 * @return
	 */
	String buildClickUrl2(String version, int channelId, int platformId, long adspaceId, long strategyId, long creativeId, long materialId, String guid, String targetUrl, String extend, int os);
	
	/**
	 * 创建竞价成功地址
	 *@param version 地址接口版本号 
	 * @param channelId 接入渠道标识 不能为NULL
	 * @param platformId 平台标识 在自由平台下可以为Null 
	 * @param adspaceId 广告位标识， 可以为NULL
	 * @param strategyId 策略标识， 不可为null
	 * @param creativeId 创意标识， 不可为NULL
	 * @param materialId 素材标识, 不可为null
	 * @param guid 广告跟踪标识， 不可为Null
	 * @return
	 */
	String buildWinoticeUrl(String version, int channelId, int platformId, long adspaceId, long strategyId, long creativeId, long materialId, String guid, int os);

}
